home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-09 / cdpro11c.zip / CD_PRO.CLA < prev    next >
Text File  |  1993-01-15  |  22KB  |  548 lines

  1.  
  2.                  PROGRAM
  3.  
  4.              INCLUDE('STD_KEYS.CLA')
  5.              INCLUDE('CTL_KEYS.CLA')
  6.              INCLUDE('ALT_KEYS.CLA')
  7.              INCLUDE('SHF_KEYS.CLA')
  8.  
  9. REJECT_KEY   EQUATE(CTRL_ESC)
  10. ACCEPT_KEY   EQUATE(CTRL_ENTER)
  11. TRUE         EQUATE(1)
  12. FALSE        EQUATE(0)
  13.  
  14.             MAP
  15.                 PROC(G_OPENFILES)
  16.                 PROC(G_OPENFILES2)
  17.                proc( LPM_Font )
  18.                module( 'LPM_Font.BIN' ), binary
  19.                   proc( LoadFont )
  20.                   func( CheckVideo ), long
  21.                   proc( ClearFont )
  22.                .
  23. !* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  24.                 MODULE('CD_PRO01')
  25.                   PROC(MAIN)                      !Ultimate CDROM Manager
  26.                 .                                 !Size is   2,141
  27.                 MODULE('COMMAND1')
  28.                   PROC(COMMAND)                   !Execute Command
  29.                 .                                 !Size is   1,056
  30.                 MODULE('DISPFILE')
  31.                   PROC(DISPFILE)
  32.                 .                                 !Size is   3,375
  33.                 MODULE('DOSTOOL3'),BINARY
  34.                   PROC(BROWSE)                    !TYPE TEXT FILE TO PRINTER
  35.                   FUNC(CHK8087),LONG              !CHECK 8087 STATUS
  36.                   PROC(CHPATH)                    !CHANGE PATH
  37.                   FUNC(COMMAND_LINE),STRING
  38.                   FUNC(CURDISK),STRING            !GET CURRENT DISK DRIVE
  39.                   FUNC(CURPATH),STRING            !GET CURRENT PATH
  40.                   PROC(DELFILE)                   !DELETE A FILE
  41.                   FUNC(DOSVER),LONG               !GET DOS VERSION
  42.                   FUNC(ENVIRONMENT),STRING
  43.                   PROC(FINDFIRST)                 !SEARCH FOR FIRST AND RETURN
  44.                   PROC(FINDNEXT)                  !SEARCH FOR NEXT AND RETURN
  45.                   FUNC(GETATTR),LONG              !GET FILE ATTR
  46.                   FUNC(GETFILSZ),LONG             !GET FILE SIZE
  47.                   FUNC(GETVERFY),LONG             !GET VERIFY SWITCH STATUS
  48.                   PROC(MKPATH)                    !MAKE NEW PATH
  49.                   FUNC(PGMPATH),STRING            !GET CURRENT PROGRAM PATH
  50.                   FUNC(PRINTSCN),LONG             !PRINT SCREEN ON LPT1
  51.                   FUNC(PROPER),STRING
  52.                   FUNC(PRTSTAT),LONG              !GET PRINTER STATUS
  53.                   PROC(RMPATH)                    !REMOVE PATH
  54.                   PROC(SETATTR)                   !SET FILE ATTR ON/OFF
  55.                   PROC(SETDISK)                   !SET NEW CURRENT DISK
  56.                   PROC(SETFIRST)                  !SEARCH FOR FIRST
  57.                   PROC(SETVERFY)                  !SET VERIFY SWITCH
  58.                   PROC(SPOOL)                     !Queue a file to printer
  59.                 .                                 !Size is   3,903
  60. !* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  61.                 AREA ! Number  2
  62.                   OVERLAY
  63.                     MODULE('CD_PRO02')
  64.                       PROC(SHO_FN)                !Show Filedata By Fn
  65.                     .
  66.                     MODULE('CD_PRO11')
  67.                       PROC(SHO1TBL)               !Files on ONE CD
  68.                   . .                             !Size is   8,458
  69.                   OVERLAY
  70.                     MODULE('CD_PRO12')
  71.                       PROC(DIRECTORY)             !Directory Information Mtnc
  72.                     .
  73.                     MODULE('CD_PRO13')
  74.                       PROC(SHO_DIR)
  75.                     .
  76.                     MODULE('UPD_DIR')
  77.                       PROC(UPD_DIR)               !Update Directory Information
  78.                   . .                             !Size is   8,311
  79.                   OVERLAY
  80.                     MODULE('ABOUT')
  81.                       PROC(ABOUT)
  82.                     .
  83.                     MODULE('CD_PRO05')
  84.                       PROC(CONFIG)                !Configuration
  85.                   . .                             !Size is   4,614
  86.                   OVERLAY
  87.                     MODULE('CD_PRO06')
  88.                       PROC(IMPORT_CHK)            !Check if They Want to Continue
  89.                     .
  90.                     MODULE('CD_PRO08')
  91.                       PROC(DOS_FMTF)              !Convert DOS Text File Listing
  92.                     .
  93.                     MODULE('CD_PRO09')
  94.                       PROC(SPECIAL)               !UTILITIES
  95.                     .
  96.                     MODULE('IMPORT_I')
  97.                       PROC(IMPORT_INT)
  98.                   . .                             !Size is   8,455
  99.                   OVERLAY
  100.                     MODULE('CD_PRO07')
  101.                       PROC(REPORTS)               !Reports
  102.                     .
  103.                     MODULE('CH_DUPES')
  104.                       PROC(CH_DUPES)              !Check File List for Duplicat'n
  105.                     .
  106.                     MODULE('DUPES')
  107.                       PROC(DUPES)
  108.                     .
  109.                     MODULE('RECREATE')
  110.                       PROC(RECREATE)              !Re-Create File Listing
  111.                   . .                             !Size is   7,031
  112.                   OVERLAY
  113.                     MODULE('CD_PRO04')
  114.                       PROC(SEARCH_FORM)           !Search for a Phrase
  115.                     .
  116.                     MODULE('LONGSEAR')
  117.                       PROC(LONGSEARCH)
  118.                   . .                             !Size is   6,832
  119.                 END !Area Number  2               !Size is   8,458
  120. !* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  121.                 AREA ! Number  4
  122.                   OVERLAY
  123.                     MODULE('IMPORTCL')
  124.                       PROC(IMPORT_FILE)           !Import from Text Files
  125.                   . .                             !Size is   4,546
  126.                   OVERLAY
  127.                     MODULE('COMPFL')
  128.                       PROC(COMPFL)                !Compare File Lists
  129.                   . .                             !Size is   4,080
  130.                   OVERLAY
  131.                     MODULE('DOS_FMT')
  132.                       PROC(DOS_FMT)
  133.                   . .                             !Size is   3,965
  134.                   OVERLAY
  135.                     MODULE('RECRFILE')
  136.                       PROC(REC_REPORT)
  137.                   . .                             !Size is   3,949
  138.                   OVERLAY
  139.                     MODULE('CD_PRO10')
  140.                       PROC(FORMAT_CFG)            !FILE FORMAT CONFIGURATION
  141.                   . .                             !Size is   3,127
  142.                   OVERLAY
  143.                     MODULE('CD_PRO14')
  144.                       PROC(SEARCH)
  145.                     .
  146.                     MODULE('SEARCH')
  147.                       PROC(SEARCH2)
  148.                   . .                             !Size is   3,406
  149.                   OVERLAY
  150.                     MODULE('CD_PRO03')
  151.                       PROC(VIEW_FILE)             !Update Filedata
  152.                     .
  153.                     MODULE('VIEWGIF')
  154.                       PROC(VIEWGIF)               !Call VPIC to View a GIF
  155.                   . .                             !Size is   3,838
  156.                   OVERLAY
  157.                     MODULE('PRE_REMO')
  158.                       PROC(PRE_REMOVE)
  159.                     .
  160.                     MODULE('REMOVEDR')
  161.                       PROC(REMOVE_DIR)
  162.                   . .                             !Size is   4,473
  163.                   OVERLAY
  164.                     MODULE('CD_PRO16')
  165.                       PROC(CORRECT_DATE)
  166.                     .
  167.                     MODULE('CHKDATE')
  168.                       PROC(CHKDATE)
  169.                   . .                             !Size is   3,570
  170.                   OVERLAY
  171.                     MODULE('CDLOOKUP')
  172.                       PROC(LOOKUPCD)
  173.                       PROC(UPD_DRIVES)
  174.                     .
  175.                     MODULE('UNIQUE')
  176.                       PROC(UNIQUE)
  177.                   . .                             !Size is   3,421
  178.                   OVERLAY
  179.                     MODULE('PRE_BUIL')
  180.                       PROC(PRE_BUILD)             !Re-Build Key Information
  181.                     .
  182.                     MODULE('SHK_STR')
  183.                       PROC(SHK_STR)
  184.                   . .                             !Size is   1,916
  185.                 END !Area Number  4               !Size is   4,546
  186. !* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  187.                 AREA ! Number  5
  188.                   OVERLAY
  189.                     MODULE('FF_UPD')
  190.                       PROC(FF_UPD)                !File List Format Update
  191.                     .
  192.                     MODULE('INCRSTR')
  193.                       FUNC(INCRSTR),STRING
  194.                   . .                             !Size is   2,679
  195.                   OVERLAY
  196.                     MODULE('CD_PRO15')
  197.                       PROC(FIND_DIR)              !Choose CD and Directory
  198.                   . .                             !Size is   2,366
  199.                   OVERLAY
  200.                     MODULE('ZIPVIEW')
  201.                       PROC(ZIPVIEW)
  202.                   . .                             !Size is   3,913
  203.                   OVERLAY
  204.                     MODULE('CHK_FLP')
  205.                       PROC(CHK_FLP)               !Check for files on floppy
  206.                     .
  207.                     MODULE('ELIM')
  208.                       FUNC(ELIM),STRING
  209.                     .
  210.                     MODULE('FMT_FUNC')
  211.                       FUNC(FMT_FUNC),STRING       !Return Format Based on Data
  212.                       PROC(SHOW_FMT)
  213.                   . .                             !Size is   3,841
  214.                 END !Area Number  5               !Size is   3,913
  215. !* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  216.             END !MAP                              !Size is  38,099
  217.  
  218. FILEDATA         FILE,PRE(FIL),CREATE,RECLAIM,NAME(FILE_1)
  219. BY_FN              KEY(FIL:FQ,FIL:FN,FIL:DIRNUM),NOCASE,OPT
  220. BY_CD              KEY(FIL:DN_CD,FIL:FN),DUP,NOCASE,OPT
  221. BY_DIR             KEY(FIL:DIRNUM,FIL:FN),NOCASE,OPT
  222. FMEMO              MEMO(230)
  223. RECORD             RECORD
  224. FQ                   STRING(9)
  225. FN                   STRING(12)
  226. FS                   LONG                        !File Size
  227. FDATE                LONG                        !File Date
  228. FDATA                STRING(48)
  229. DIRNUM               GROUP
  230. DN_CD                  STRING(2)
  231. DN_DIR                 STRING(2)
  232.                      .
  233.                  . .
  234.                  GROUP,OVER(FIL:FMEMO)
  235. FIL_MEMO_ROW       STRING(46),DIM(5)
  236.                  .
  237.  
  238. DIRECTRY         FILE,PRE(DIR),CREATE,RECLAIM,NAME(FILE_2)
  239. BY_DIRECTORY       KEY(DIR:CD,DIR:DIRECTORY),NOCASE,OPT
  240. BY_DIRNUM          KEY(DIR:DIRNUM),NOCASE,OPT
  241. !JUST_CD           KEY(DIR:CD),DUP,NOCASE,OPT
  242. RECORD             RECORD
  243. DIRECTORY            STRING(32)                  !where it is
  244. DIRNUM               GROUP
  245. DN_CD                  STRING(2)
  246. DN_DIR                 STRING(2)
  247.                      .
  248. CD                   STRING(15)
  249. DESCRIPTION          STRING(40)
  250.                  . .
  251.  
  252.  
  253. CONFIG           FILE,PRE(CON),CREATE,RECLAIM,NAME(FILE_3)
  254. RECORD             RECORD
  255. DRIVE                STRING(1)                   !CD-ROM Drive
  256. DEFCOMMAND           STRING(20)                  !Default Command
  257. NONSTANDARD          STRING(10)                  !Non-Standard Characters
  258. DEFCD                STRING(15)                  !Default CD-ROM
  259. GIFVIEWER            STRING(8)                   !GIF Viewer
  260. GIFVIEWOPT           STRING(20)                  !Options for GIF VIEWER
  261. ARJVIEWER            STRING(15)                  !ARJ File Viewer
  262. ZIPVIEWER            STRING(15)
  263. LZHVIEWER            STRING(15)
  264. ARCVIEWER            STRING(15)
  265. TEXTVIEWER           STRING(15)
  266. COPYTARGET           STRING(25)
  267. MULTICD              STRING(1)
  268. MAINPATH             STRING(80)
  269.                  . .
  270.  
  271. FLFORMAT         FILE,PRE(F),CREATE,RECLAIM,NAME(FILE_4)
  272. BY_TYPE            KEY(F:TYPE_FORMAT),NOCASE,OPT
  273. RECORD             RECORD
  274. FT                   BYTE                        !FILENAME LOCATION
  275. ST                   BYTE                        !SIZE LOCATION
  276. DATET                BYTE                        !DATE LOCATION
  277. DT                   BYTE                        !DESCRIPTION TAB
  278. SL                   BYTE                        !SIZE FIELD SIZE
  279. DATEF                STRING(1)                   !DATE FORMAT
  280. DL                   BYTE                        !DESCRIPTION LENGTH
  281. TYPE_FORMAT          STRING(10)                  !WHICH FORMAT IS THIS?
  282.                  . .
  283.  
  284. ZVWITHIN         FILE,PRE(ZIP),CREATE,RECLAIM,NAME(FILE_5)
  285. BY_FNM             KEY(ZIP:FNM),DUP,NOCASE,OPT
  286. RECORD             RECORD
  287. FNM                  STRING(12)
  288. DATA                 STRING(66)
  289.                  . .
  290.  
  291. DRIVES           FILE,PRE(DRI),CREATE,RECLAIM,NAME(DRVFILE)
  292. BY_CD              KEY(DRI:CD),NOCASE,OPT
  293. RECORD             RECORD
  294. LETTER               STRING(1)
  295. CD                   STRING(15)
  296.                  . .
  297.  
  298.  
  299.              EJECT('GLOBAL MEMORY VARIABLES')
  300. ACTION       SHORT                               !0 = NO ACTION
  301.                                                  !1 = ADD RECORD
  302.                                                  !2 = CHANGE RECORD
  303.                                                  !3 = DELETE RECORD
  304.                                                  !4 = LOOKUP FIELD
  305.                  GROUP,PRE(MEM)
  306. MESSAGE            STRING(30)                    !Global Message Area
  307. PAGE               SHORT                         !Report Page Number
  308. LINE               SHORT                         !Report Line Number
  309. DEVICE             STRING(30)                    !Report Device Name
  310. SEARCH_FOR         STRING(20)                    !Search for this String
  311. INFILE             STRING(30)                    !File List to be Read In
  312. VALID              STRING(8)                     !String Embedded (Validator)
  313. INCLUSIVE          STRING(1)                     !Include Invalid lines in Outpu
  314. RTYPE1             STRING(1)                     !Report Type:
  315. CD_OR_DIR          STRING(1)
  316. SEARCHTYPE         STRING(1)                     !Search Type: Exact or Close
  317. EXCLUDE1           STRING(15)                    !Exclude this from reports
  318. EXCLUDE2           STRING(15)                    !Exclude this from reports
  319. OLD_FORM           STRING(10)
  320. NEW_FORM           STRING(10)
  321. I_SOURCE           STRING(25)                    !Import Source
  322. I_CD               STRING(15)                    !CD Title
  323. I_FORMAT           STRING(10)
  324. I_LOCATION         STRING(32)
  325. I_TITLE            STRING(40)
  326. SFOUND             BYTE
  327. SORDER             BYTE                          !SEARCH ORDER (1,2,3...
  328.                  .
  329.  
  330. FILE_1 STRING(70)
  331. FILE_2 STRING(70)
  332. FILE_3 STRING(70)
  333. FILE_4 STRING(70)
  334. FILE_5 STRING(70)
  335. FILE_6 STRING(70)
  336. DRVFILE STRING(70)
  337. CMD_LINE STRING(80)
  338. PRGDRIVE STRING(1)
  339. PRGPATH  STRING(60)
  340.  
  341. OPENING      SCREEN       HUE(0,7)
  342.                ROW(6,1)   PAINT(15,9),HUE(15,1)
  343.                ROW(21,1)  PAINT(5,80),HUE(15,1)
  344.                ROW(6,71)  PAINT(16,10),HUE(15,1)
  345.                ROW(1,1)   PAINT(5,80),HUE(15,1)
  346.                ROW(6,10)  STRING('<219,223{59}>'),HUE(15,7)
  347.                ROW(7,10)  REPEAT(13);STRING('<219>'),HUE(15,7) .
  348.                ROW(6,70)  STRING('<1>'),HUE(15,0)
  349.                ROW(20,10) STRING('<2>'),HUE(15,0)
  350.                ROW(7,70)  REPEAT(8);STRING('<219>') .
  351.                ROW(15,30) STRING('<237,0{39},219>')
  352.                ROW(16,70) REPEAT(4);STRING('<219>') .
  353.                ROW(20,11) STRING('<220{59},219>')
  354.                ROW(11,29) STRING('LOADING... PLEASE WAIT.')
  355.                ROW(14,26) STRING('CD-PRO:  The CD-ROM Librarian'),HUE(1,7)
  356.                ROW(15,29) STRING('(')
  357.                  COL(31)  STRING(') 1993 Vince Sorensen')
  358.              .
  359. TAG TABLE,PRE(TAG)
  360. REC LONG
  361.     .
  362.  
  363.              EJECT('CODE SECTION')
  364.  
  365.   CODE
  366.   LPM_FONT
  367.   OPEN(OPENING)
  368.   PRGDRIVE=CURDISK()
  369.   PRGPATH =CURPATH()
  370.   CMD_LINE=LEFT(UPPER(COMMAND_LINE()))
  371.   IF INSTRING('/NONE',CMD_LINE,1)>0
  372.      CMD_LINE=''
  373.   .
  374.   IF INSTRING('/',CMD_LINE,1)
  375.      LOOP PP#=1 TO 6
  376.         CD_OR_DIR=SUB('FDCLTD',PP#,1)
  377.         DO PARSE_CMD
  378.         CASE PP#
  379.         OF 1
  380.            FILE_1=FILE_6
  381.         OF 2
  382.            FILE_2=FILE_6
  383.         OF 3
  384.            FILE_3=FILE_6
  385.         OF 4
  386.            FILE_4=FILE_6
  387.         OF 5
  388.            FILE_5=FILE_6
  389.         OF 6
  390.            DRVFILE=FILE_6
  391.         .
  392.      .
  393.   ELSE
  394.      IF CLIP(CMD_LINE)<>''
  395.         XX#=INSTRING(' ',CMD_LINE,1)
  396.         IF INSTRING(',',CMD_LINE,1)<XX# AND INSTRING(',',CMD_LINE,1)>0
  397.            XX#=INSTRING(',',CMD_LINE,1)
  398.         .
  399.         CMD_LINE=RIGHT(CLIP(SUB(CMD_LINE,1,XX#)))
  400.         IF SUB(CMD_LINE,80,1)<>':' AND SUB(CMD_LINE,80,1)<>'\'
  401.            CMD_LINE=CLIP(LEFT(CMD_LINE)&'\')
  402.         ELSE
  403.            CMD_LINE=LEFT(CMD_LINE)
  404.    ..
  405.  
  406.      FILE_1=CLIP(CMD_LINE)&'PROFILES'
  407.      FILE_2=CLIP(CMD_LINE)&'PRODIR'
  408.      FILE_3=CLIP(CMD_LINE)&'PROCONF'
  409.      FILE_4=CLIP(CMD_LINE)&'PROFORM'
  410.      FILE_5=CLIP(CMD_LINE)&'TMPDBASE'
  411.      DRVFILE=CLIP(CMD_LINE)&'PRODRIVE'
  412.   .
  413.   IF CLIP(FILE_1)=''
  414.      FILE_1='PROFILES'
  415.   .
  416.   IF CLIP(FILE_2)=''
  417.      FILE_2='PRODIR'
  418.   .
  419.   IF CLIP(FILE_3)=''
  420.      FILE_3='PROCONF'
  421.   .
  422.   IF CLIP(FILE_4)=''
  423.      FILE_4='PROFORM'
  424.   .
  425.   IF CLIP(FILE_5)=''
  426.      FILE_5='TMPDBASE'
  427.   .
  428.   IF CLIP(DRVFILE)=''
  429.      DRVFILE='PRODRIVE'
  430.   .
  431.  
  432.   IF XX#=0 THEN XX#=1.
  433.  
  434.   CMD_LINE=SUB(COMMAND_LINE(),XX#,80)
  435.  
  436.   HELP('CD_PRO.HLP')                             !OPEN THE HELP FILE
  437.  
  438.   G_OPENFILES                                    !OPEN OR CREATE FILES
  439.   MAIN                                           !Ultimate CDROM Manager
  440.   CLOSE(OPENING)
  441.   RETURN                                         !EXIT TO DOS
  442.  
  443. PARSE_CMD ROUTINE
  444.      FILE_6=''
  445.      IF INSTRING('/'&CD_OR_DIR&'=',CMD_LINE,1)
  446.         FILE_6=SUB(CMD_LINE,INSTRING('/'&CD_OR_DIR&'=',CMD_LINE,1)+3,70)
  447.         XX#=INSTRING(' ',FILE_6,1)
  448.         IF INSTRING(',',FILE_6,1)<XX# AND INSTRING(',',FILE_6,1)>0
  449.            XX#=INSTRING(',',FILE_6,1)
  450.         .
  451.         IF XX#<2
  452.            FILE_6=''
  453.         ELSE
  454.            FILE_6=SUB(FILE_6,1,XX#)
  455.         .
  456.      .
  457.      CD_OR_DIR='D'
  458.      EXIT
  459.  
  460. G_OPENFILES  PROCEDURE                           !OPEN FILES & CHECK FOR ERROR
  461.   CODE
  462.   G_OPENFILES2(FILEDATA)                         !CALL OPEN FILE PROCEDURE
  463.   G_OPENFILES2(CONFIG)                           !CALL OPEN FILE PROCEDURE
  464.   IF RECORDS(CONFIG)=0
  465.      DRIVE='F'
  466.      MAINPATH=''
  467.      DEFCOMMAND='COPY'
  468.      GIFVIEWER='VPIC -A'
  469.      TEXTVIEWER='LIST'
  470.      ZIPVIEWER='PKZIP -V'
  471.      ADD(CONFIG)
  472.   .
  473.   G_OPENFILES2(FLFORMAT)                         !CALL OPEN FILE PROCEDURE
  474.   G_OPENFILES2(DIRECTRY)                         !CALL OPEN FILE PROCEDURE
  475.   REMOVE(ZVWITHIN)
  476.   G_OPENFILES2(ZVWITHIN)                         !CALL OPEN FILE PROCEDURE
  477.   G_OPENFILES2(DRIVES)                           !CALL OPEN FILE PROCEDURE
  478.  
  479. G_OPENFILES2 PROCEDURE(G_FILE)                   !OPEN EACH FILE & CHECK ERROR
  480. G_FILE      EXTERNAL,FILE
  481. FILE_NAME   STRING(64)
  482.  
  483.   CODE
  484.   FILE_NAME = NAME(G_FILE)
  485.   SHOW(25,1,CENTER('OPENING FILE: ' & CLIP(FILE_NAME),80)) !DISPLAY FILE NAME
  486.   OPEN(G_FILE)                                   !OPEN THE FILE
  487.   IF ERROR()                                     !OPEN RETURNED AN ERROR
  488.     CASE ERRORCODE()                             ! CHECK FOR SPECIFIC ERROR
  489.     OF 46                                        !  KEYS NEED TO BE REBUILT
  490.       SHOW(25,1,CENTER('REBUILDING KEY FILES FOR ' & CLIP(FILE_NAME),80))
  491.       BUILD(G_FILE)                              !  CALL THE BUILD PROCEDURE
  492.       IF ERROR()                                 !  ON UNNEXPECTED ERROR
  493.         LOOP                                     !  STOP EXECUTION
  494.           STOP('Cannot Build ' & FILE_NAME & ' - Error: ' & ERROR())
  495.         .
  496.       .
  497.       BLANK(25,1,1,80)                           !  BLANK THE MESSAGE
  498.     OF 2                                         !IF NOT FOUND,
  499.       CREATE(G_FILE)                             ! CREATE
  500.       IF ERROR()                                 !STOP ON UNNEXPECTED ERROR
  501.         LOOP
  502.           STOP('Cannot Create ' & FILE_NAME & ' - Error: ' & ERROR())
  503.       . .
  504.     OF 73                                        ! MEMO FILE NOT FOUND
  505.       LOOP                                       !  STOP EXECUTION
  506.         STOP('Cannot Open Memo File for ' & FILE_NAME & ERROR())
  507.       .
  508.     ELSE                                         ! ANY OTHER ERROR
  509.       LOOP                                       !  STOP EXECUTION
  510.         STOP('Cannot Open ' & FILE_NAME & ' - Error: ' & ERROR())
  511.       .
  512.   . .
  513.  
  514. LPM_Font  procedure
  515.  
  516. g_EGA         group,PRE(G_E)             !  
  517. gsChar1       string('<255,254,248,240,224,192,128,0,0,0,0,0,0,0>')
  518. gsChar2       string('<255,255,255,255,255,255,255,254,248,240,224,192,128,0>')
  519. .
  520. g_VGA         group,PRE(G_V)             !  
  521. GsChar1       string('<255,254,248,240,224,192,128,0,0,0,0,0,0,0,0,0>' )
  522. GsChar2       string('<255,255,255,255,255,254,254,248,240,224,192,128,0,0,0,0>' )
  523. .
  524.  
  525.     code
  526.     XX#=CheckVideo()
  527.     execute XX#
  528.       LoadFont(1,1,2,G_EGA)
  529.       LoadFont(2,1,2,G_VGA)
  530.     .
  531.     execute XX#           ! ·
  532.       LoadFont(1,250,1,'<0,0,0,0,0,0,195,255,195,0,0,0,0,0>')
  533.       LoadFont(2,250,1,'<0,0,0,0,0,0,0,195,255,195,0,0,0,0,0,0>')
  534.     .
  535.     execute XX#              ! φ
  536.       LoadFont(1,237,1,'<255,0,0,124,198,192,192,192,198,124,0,0,0,255>')
  537.       LoadFont(2,237,1,'<0,255,0,0,124,198,192,192,192,198,124,0,0,255,0,0>')
  538.     .
  539.     execute XX#              ! (
  540.       LoadFont(1,40,1,'<3,6,12,24,48,48,48,48,48,48,24,12,6,3>')
  541.       LoadFont(2,40,1,'<0,0,3,12,24,48,48,96,48,48,24,12,3,0,0,0>')
  542.     .
  543.     execute XX#              ! )
  544.       LoadFont(1,41,1,'<192,96,48,24,12,12,12,12,12,12,24,48,96,192>')
  545.       LoadFont(2,41,1,'<0,0,192,48,24,12,12,6,12,12,24,48,192,0,0,0>')
  546.     .
  547.     RETURN
  548.